package cn.stylefeng.guns.modular.gridsystem.service;

import cn.stylefeng.guns.core.pojo.page.PageResult;
import cn.stylefeng.guns.modular.gridsystem.entity.BizThreholdItem;
import cn.stylefeng.guns.modular.gridsystem.model.param.BizThreholdItemParam;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 阈值配置项 服务类
 *
 * @author 乔李莱莱
 * @since 2023/10/17
 */
public interface BizThreholdItemService extends IService<BizThreholdItem> {

    /**
     * 分页查询阈值配置项
     *
     * @author 乔李莱莱
     * @since 2023/10/17
     */
    PageResult<BizThreholdItem> page(BizThreholdItemParam bizThreholdItemParam);

    /**
     * 添加阈值配置项
     *
     * @author 乔李莱莱
     * @since 2023/10/17
     */
    void add(BizThreholdItemParam bizThreholdItemParam);

    /**
     * 删除阈值配置项
     *
     * @author 乔李莱莱
     * @since 2023/10/17
     */
    void delete(BizThreholdItemParam bizThreholdItemParam);

    /**
     * 编辑阈值配置项
     *
     * @author 乔李莱莱
     * @since 2023/10/17
     */
    void edit(BizThreholdItemParam bizThreholdItemParam);

    /**
     * 查看详情阈值配置项
     *
     * @author 乔李莱莱
     * @since 2023/10/17
     */
    BizThreholdItem detail(BizThreholdItemParam bizThreholdItemParam);

    /**
     * 根据网关id查询阈值配置
     *
     * @param id
     * @author 乔李莱莱
     * @since 2023/10/17
     * @return
     */
    List<BizThreholdItem> listByGatewayId(Integer id);

    /**
     * 新增阈值配置
     *
     * @param param
     * @author 乔李莱莱
     * @since 2023/10/17
     */
    void countByGIdAndChannel(BizThreholdItemParam param);

    /**
     * 根据网关id和网关通道查询阈值配置
     *
     * @param bizThreholdItemParam
     * @author 乔李莱莱
     * @since 2023/10/17
     */
    BizThreholdItem threholdItemByChannelAndGatewayId(BizThreholdItemParam bizThreholdItemParam);
}
